'use strict';
module.exports = (opts, app) => {
  // 后台
  return async function weappAuth(ctx, next) {
    // 解析用户
    if (app.config.pcenter && app.config.pcenter.secret) {
      // 项目中心解析
      const jwtDecoded = ctx.getJwtDecoded(app.config.pcenter.secret);
      ctx.weappUser = await app.getModel('pcenterUser').findOne({ gid: jwtDecoded.gid });
    } else {
      // 普通解析
      const jwtDecoded = ctx.getJwtDecoded(app.config.key);
      ctx.weappUser = await app.getModel('weappUser').findById(jwtDecoded.userId);
    }
    if (!ctx.weappUser) return ctx.throwAuthFail('找不到用户: NO_USER');
    await next();
  };
};
